package com.xuebusi.orm.mybatis.session;

import java.util.List;

public interface SqlSession {

    /**
     * 根据传入的条件查询单一结果
     *
     * @param statement 方法对应的SQL语句， namespace + id
     * @param parameter 要传入的SQL语句中的查询参数
     * @param <T>
     * @return 返回指定的结果对象
     */
    <T> T selectOne(String statement, Object parameter);

    /**
     * 根据条件经过查询， 返回泛型集合
     *
     * @param statement 方法对应的SQL语句， namespace + id
     * @param parameter 要传入的SQL语句中的查询参数
     * @param <E>
     * @return 返回指定的结果对象的list
     */
    <E> List<E> selectList(String statement, Object parameter);

    /**
     * @param type
     * @param <T>
     * @return
     */
    <T> T getMapper(Class<T> type);
}
